using System;
using System.ComponentModel;
using System.Windows.Forms;
using AirProperties.Resources;

namespace AirProperties
{
    [Serializable]
    public class Settings
    {
        private String projectIconsFolder = @"bin\icons";
        private String packageIconsFolder = "icons";
        private Boolean useUniformFilenames = true;
        private Boolean renameIcons = true;
        private Boolean selectPropertiesFileOnLoad = false;

        [LocalizedDisplayName("Setting.DisplayName.ProjectIconsFolder")]
        [LocalizedDescription("Setting.Description.ProjectIconsFolder"), DefaultValue(@"bin\icons")]
        [LocalizedCategory("Setting.Category.ApplicationIcons")]
        public String ProjectIconsFolder 
        {
            get { return this.projectIconsFolder; }
            set {
                this.projectIconsFolder = value; 
            }
        }

        [LocalizedDisplayName("Setting.DisplayName.PackageIconsFolder")]
        [LocalizedDescription("Setting.Description.PackageIconsFolder"), DefaultValue(@"icons")]
        [LocalizedCategory("Setting.Category.ApplicationIcons")]
        public String PackageIconsFolder
        {
            get { return this.packageIconsFolder; }
            set
            {
                this.packageIconsFolder = value;
            }
        }

        /// </summary>
        [LocalizedDisplayName("Setting.DisplayName.UseUniformFileNames")]
        [LocalizedDescription("Setting.Description.UseUniformFileNames"), DefaultValue(true)]
        [LocalizedCategory("Setting.Category.ApplicationIcons")]
        public Boolean UseUniformFilenames
        {
            get { return this.useUniformFilenames; }
            set { this.useUniformFilenames = value; }
        }

        /// </summary>
        [LocalizedDisplayName("Setting.DisplayName.RenameIconsWithSize")]
        [LocalizedDescription("Setting.Description.RenameIconsWithSize")]
        [LocalizedCategory("Setting.Category.ApplicationIcons"), DefaultValue(true)]
        public Boolean RenameIconsWithSize
        {
            get { return this.renameIcons; }
            set { this.renameIcons = value; }
        }

        /// </summary>
        [LocalizedCategory("Setting.Category.ApplicationDescriptorFile")]
        [LocalizedDisplayName("Setting.DisplayName.SelectPropertiesFileOnOpen")]
        [LocalizedDescription("Setting.Description.SelectPropertiesFileOnOpen"), DefaultValue(false)]
        public Boolean SelectPropertiesFileOnOpen
        {
            get { return this.selectPropertiesFileOnLoad; }
            set { this.selectPropertiesFileOnLoad = value; }
        }
    }

}
